/**
 * MobX Store 全局统一导出
 * 提供所有状态管理模块的统一入口
 */

// 导入全局Store
import * as globalStore from './global/index';

// 导入业务模块Store
import * as modulesStore from './modules/index';

// 导入辅助工具
import * as helpers from './helpers/index';

// 导入PLM项目模块
import { plmProjectStore } from './modules/project_store';
import { plmTaskStore } from './modules/task_store';
import { plmDocumentStore } from './modules/document_store';
import { plmTeamStore } from './modules/team_store';
import { projectContext } from './helpers/project_context';
import { cacheDependencyManager } from './helpers/cache_dependency_manager';
import { cacheInitializer } from './helpers/cache_initializer';

// 导入项目模块 (与PLM项目模块重命名区分)
import { projectStore as moduleProjectStore, taskStore as moduleTaskStore, documentStore as moduleDocumentStore, teamStore as moduleTeamStore } from './store_config';

/**
 * 初始化所有Store
 */
export function initAllStores() {
  // 先初始化全局Store
  if (globalStore.initGlobalStores) {
    globalStore.initGlobalStores();
  }
  
  // 再初始化业务模块Store
  if (modulesStore.initModuleStores) {
    modulesStore.initModuleStores();
  }
  
  // 初始化缓存系统
  cacheInitializer.initialize();
}

// 从全局Store直接导出所有标准化Store
export {
  userStore,
  uiStore,
  messageStore,
  cacheStore,
  appStore,
  projectStore,
  errorStore,
  errorHandler,
  ERROR_TYPES,
  favFootStore
} from './global/index';

// 从业务模块Store导出
export { 
  taskStore, 
  researchStore,
  resourceStore
} from './modules/index';

// 导出PLM项目模块
export { plmProjectStore };
export { plmTaskStore };
export { plmDocumentStore };
export { plmTeamStore };

// 导出项目模块 (同时支持带plm前缀和不带前缀的导出)
// 注释掉重复导出，因为projectStore已经从global/index.js导出了
// export { moduleProjectStore as projectStore };

export { projectContext };
export { cacheDependencyManager };
export { cacheInitializer };

// 导出所有Store和辅助工具
export { globalStore, modulesStore, helpers };

// 合并为单一默认导出
export default {
  // 原有导出
  global: globalStore,
  modules: modulesStore,
  helpers: helpers,
  initAllStores,
  
  // 直接从全局导出标准化Store
  userStore: globalStore.userStore,
  messageStore: globalStore.messageStore,
  uiStore: globalStore.uiStore,
  cacheStore: globalStore.cacheStore,
  appStore: globalStore.appStore,
  projectStore: globalStore.projectStore,
  errorStore: globalStore.errorStore,
  errorHandler: globalStore.errorHandler,
  ERROR_TYPES: globalStore.ERROR_TYPES,
  favFootStore: globalStore.favFootStore,
  
  // 直接从业务模块导出
  taskStore: modulesStore.taskStore,
  researchStore: modulesStore.researchStore,
  resourceStore: modulesStore.resourceStore,
  
  // PLM项目模块
  plmProjectStore,
  plmTaskStore,
  plmDocumentStore,
  plmTeamStore,

  // 项目模块
  projectStore: moduleProjectStore,
  taskStore: moduleTaskStore,
  documentStore: moduleDocumentStore,
  teamStore: moduleTeamStore,

  projectContext,
  cacheDependencyManager,
  cacheInitializer
}; 